package com.zb.service;

import com.zb.dao.ListMsgMapper;
import com.zb.dao.SysMapper;
import com.zb.model.IndexDes;
import com.zb.model.LayuiUploadResponse;
import com.zb.model.ListMsg;
import com.zb.model.SysDes;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.FileOutputStream;
import java.util.Date;
import java.util.List;
import java.util.UUID;

@Service
public class SysService {

	@Autowired
	private SysMapper sm;
	
	@Autowired
	private ListMsgMapper lmm;
	
	/**
	 * 根据类型返回数据
	 * @param type
	 * @return
	 */
	public List<SysDes> findAllByType(int type){
		return sm.selectSysByType(type);
	}
	
	/**
	 * 系统上传轮播图片
	 * @param file
	 * @return
	 */
	public LayuiUploadResponse uploadlunbo(MultipartFile file) {
		List<SysDes> sdlist =  sm.selectSysByType(0);
		if(sdlist.size()>5) { //最多上传六张，当前为第七张的话，数据库返回的数据为6>5
			LayuiUploadResponse lur = new LayuiUploadResponse();
			lur.setCode(2);
			lur.setMsg("上传失败，轮播图片最多六张！！");
			return lur;
		}else {
			String fileName = file.getOriginalFilename();
			String fileNameExtension = fileName.substring(fileName.indexOf("."), fileName.length());//解析文件后缀名
			String realName = UUID.randomUUID().toString() + fileNameExtension;//重新生成文件名
			String realPath = "C:\\tomcat\\apache-tomcat-8.5.32\\webapps\\moyissm\\static\\sysimg\\"; //定义文件存放位置（在该服务器的哪个地方存放图片）
			String url="https://www.moyi2019.com/moyissm/static/sysimg/"+realName; //设置该图片的访问路径
			FileOutputStream fos;
			try {
				fos = new FileOutputStream(realPath + realName);
				IOUtils.copy(file.getInputStream(), fos); //将从客户端接收到的图片以字节流的形式输出到存放文件的地方
				fos.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
			SysDes sd = new SysDes(); //文件上传完毕后向后台数据库添加数据
			sd.setUrl(url);           //配置entity实例
			sd.setType(0);
			sd.setSysid(UUID.randomUUID().toString());
			sd.setCreate_time(new Date());
			sd.setDetail("设置图片轮播");
			if(sm.insertSys(sd)==1) {  //向数据库添加数据
				LayuiUploadResponse lur = new LayuiUploadResponse(); //配置layui文件上传所需的返回值
				lur.setCode(0);
				lur.setMsg("上传成功");
				return lur;
			}else {
				LayuiUploadResponse lur = new LayuiUploadResponse(); //配置layui文件上传所需的返回值
				lur.setCode(-1);
				lur.setMsg("上传失败，请重试！！");
				return lur;
			}
		}
	}

	/**
	 * 根据id删除系统资源（轮播图片、公告、热门专题、热门清单）
	 * @param sysid
	 * @return
	 */
	public int deleteSysById(String sysid) {
		return sm.delSysById(sysid);
	}

	/**
	 * 发布公告
	 * @param sd
	 * @return
	 */
	public int addNotice(SysDes sd) {
		return sm.insertSys(sd);
	}

	public List<SysDes> findSomeNotice() {
		return sm.selectIndexNotice();
	}

	public int deleteHotSpecialByType(int listtype) {
		return sm.delHotSpecialByType(listtype);
	}

	public List<IndexDes> indexInit() {
		List<IndexDes> ids = sm.findIndex();
		for (IndexDes indexDes : ids) {
			List<ListMsg> lms = lmm.selectListMsgByType(indexDes.getListtype());
			indexDes.setLists(lms);
		}
		return ids;
	}
}
